﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NHibernateTests.Tests
{
    public class Entity<T>
    {
        public virtual T ID { get; set; }
    }

    public class Brand : Entity<int>
    {
        public string Name { get; set; }
    }

    public class Order : Entity<int>
    {
        public List<Item>  Items { get; set; }
    }

    public class Item : Entity<int>
    {
        public string Name { get; set; }
        public float Price { get; set; }
        public Brand Brand { get; set; }
    }
    
    public class Television : Item
    {
        public string Resolution { get; set; }
        public int Size { get; set; }
    }

    public class Cart : Entity<int>
    {    
        [Rhino.Commons.ThereBeDragons()]
        public Cart()
        {
            Items = new List<Item>();
            Date = DateTime.Now;
        }

        public DateTime Date { get; set;}
        
        public IList<Item> Items { get; set; }
    }

    public enum BatterySize
    {
        AA = 1,
        AAA = 2,       
        C = 4,
        D = 5
    }

    public class Battery : Item
    {
        public BatterySize Size { get; set; }
    }
}